package com.me.crgame.transiciones;

import com.badlogic.gdx.scenes.scene2d.Action;
import com.me.crgame.core.Director;
import com.me.crgame.core.Transicion;

import static com.badlogic.gdx.scenes.scene2d.actions.Actions.fadeIn;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.fadeOut;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.sequence;


public class TransicionNegraN extends Transicion {
	
	private float tiempoFadeIn;
	private float tiempoFadeOut;

	public TransicionNegraN(float in, float out) {
		super();
		super.setBackground("data/sistema_menus/transiciones/black.png");
		tiempoFadeIn = in;
		tiempoFadeOut = out;
	}


	@Override
	protected void empiezaLaEscena(int transitionMode) {
		if (transitionMode == 1) {
			// Partimos de que la imagen no se ve
			background.getColor().a = 0.0f;

			// Creamos la accion para que aparezca en 1 segundo
			Action fade = fadeIn(tiempoFadeIn);//<--- LA UNICA DIFERENCIA, vale la pena hacer esta clase rehusable?

			background.addAction(sequence(fade, new Action() {
				@Override
				public boolean act(float delta) {
					// Cuando finalmente el fondo de la pantalla desaparezca
					// se cambiara de screen
					Director.getInstance().transicionFinalizada(1);
					return true;
				}
			}));
		}

		if (transitionMode == 2) {
			// Partimos de que la imagen se ve
			background.getColor().a = 1.0f;

			// Creamos la accion para que desaparezca en 1 segundo
			Action fade = fadeOut(tiempoFadeOut);

			// y lo asociamos a la imagen
			background.addAction(sequence(fade, new Action() {
				@Override
				public boolean act(float delta) {
					// Cuando finalmente el fondo de la pantalla desaparezca
					// se cambiara de screen
					Director.getInstance().transicionFinalizada(2);
					return true;
				}
			}));

		}

	}
	
	@Override
	protected void pause(boolean gamePaused) {
		// TODO Auto-generated method stub

	}

	@Override
	protected void update(float deltaTime) {
		// TODO Auto-generated method stub

	}

}
